"use strict"

/**
 * @Vite配置
 * distBaesUrl和exportDir需要根据项目情况修改
 */

// 从Node的URL模块中导入fileURLToPath函数，用于将文件URL转换为文件路径
import { fileURLToPath, URL } from "node:url"
// 导入Vite配置模块，以提供代码注释
import { defineConfig } from "vite"
// 导入Vite的Vue插件，用于支持Vue组件
import vue from "@vitejs/plugin-vue"
// // 导入VueDevTools插件，用于在开发过程中调试Vue应用
// import vueDevTools from "vite-plugin-vue-devtools"
// 导入vite的自动插件导入模块，以实现组件库的按需导入
import AutoImport from "unplugin-auto-import/vite"
import Components from "unplugin-vue-components/vite"
// 从vue组件库导入TDesign组件解析器
import { TDesignResolver } from "unplugin-vue-components/resolvers"


// 生产环境下的基础路径
const distBaesUrl = "/score-query/"
// 打包导出地址
const exportDir = "./dist"

// Vite配置对象，作为默认导出
export default defineConfig({
  // 插件
  plugins: [
    // vue插件
    vue(),
    // // Vue开发工具
    // vueDevTools(),
    // 模块自动import插件
    AutoImport({
      // 自动导入TDsign
      resolvers: [TDesignResolver({
        library: "mobile-vue"
      })],
    }),
    // 组件自动注册插件
    Components({
      // 自动导入TDsign
      resolvers: [TDesignResolver({
        library: "mobile-vue"
      })],
    }),
  ],
  // 解析，即如何解析模块路径
  resolve: {
    // 别名
    alias: {
      // 将@别名指向src目录
      "@": fileURLToPath(new URL("./src", import.meta.url))
    },
  },
  // 服务器
  server: {
    // 监听0.0.0.0，这样局域网也能访问
    host: "0.0.0.0"
  },
  // 构建时的基础路径
  base: process.env.NODE_ENV === "production" ? distBaesUrl : "/",
  // 构建选项
  build: {
    // 输出目录
    outDir: exportDir,
  },
})
